#!/usr/bin/env python
# coding: utf-8

# In[6]:


模块一：训练集z-score 标准化
import pandas as pd
from sklearn.preprocessing import StandardScaler

# 读取训练集数据
train_df = pd.read_csv('train_set.csv')  

# 提取前四列连续型变量
continuous_cols = train_df.columns[:4]

# 标准化处理
scaler = StandardScaler()
train_df[continuous_cols] = scaler.fit_transform(train_df[continuous_cols])

# 保存为新的CSV文件（默认不保存行索引）
train_df.to_csv('train_set_z-score.csv', index=False)  # 👈 新增的保存代码

# 可选：打印保存确认信息
print("标准化后的数据已保存至：train_set_z-score.csv")


# In[8]:


#模块二：存储训练集标准差数据并用训练集的并利用训练集的均值和标准差对测试集进行归一化处理
import pandas as pd
from sklearn.preprocessing import StandardScaler


# 读取训练集
train_df = pd.read_csv('train_set.csv')
continuous_cols = train_df.columns[:4]

# 在训练集上拟合标准化器（计算均值和标准差）
scaler = StandardScaler()
scaler.fit(train_df[continuous_cols])  # 关键：仅拟合不转换

# 第二步：处理测试集（使用训练集的标准化参数）
# --------------------------------------------------
# 读取测试集
test_df = pd.read_csv('test_set.csv')

# 仅对前四列应用训练集的标准化参数（禁止重新拟合）
test_df[continuous_cols] = scaler.transform(test_df[continuous_cols])

# 保存处理后的测试集
test_df.to_csv('test_set_normalize.csv', index=False)

# 第三步：验证结果
# --------------------------------------------------
print("\n测试集标准化验证（应接近训练集的均值和标准差）：")
print("理论均值（来自训练集）:", scaler.mean_)
print("理论标准差（来自训练集）:", scaler.scale_)
print("\n实际测试集统计：")
print(test_df[continuous_cols].agg(['mean', 'std']))


# In[ ]:




